package vcp.entity;

import java.io.Serializable;

import org.joda.time.DateTime;

import vcp.enums.ComplaintType;
import vcp.enums.ComplaintType.ComplaintResolve;
import vcp.enums.ComplaintType.ComplaintStatus;
import vcp.enums.SiteEnum;
/**
 * <p> complaint class includes getters and setters </p>
 * @author VCP team
 *
 */
public class Complaint implements Serializable
{

	/**
	 * 
	 */
	private static final long serialVersionUID = - 1230615271328579019L;

	private Integer ID;
	/**
	 * getter
	 * @return id
	 */
	public Integer getID ()
	{
		return this.ID;
	}
	/**
	 * setter
	 * @param complaintID
	 */
	public void setID ( Integer complaintID )
	{
		this.ID = complaintID;
	}

	private int customerID;
	/**
	 * getter
	 * @return customer id
	 */
	public int getCustomerID ()
	{
		return this.customerID;
	}
	/**
	 * setter
	 * @param customerID
	 */
	public void setCustomerID ( int customerID )
	{
		this.customerID = customerID;
	}

	private ComplaintType type;
	/**
	 * getter
	 * @return type
	 */
	public ComplaintType getType ()
	{
		return this.type;
	}
	/**
	 * setter
	 * @param complaitType
	 */
	public void setType ( ComplaintType complaitType )
	{
		this.type = complaitType;
	}

	private String text;
	/**
	 * getter
	 * @return complaint text
	 */
	public String getText ()
	{
		return this.text;
	}
	/**
	 * setter
	 * @param text
	 */
	public void setText ( String text )
	{
		this.text = text;
	}

	private ComplaintStatus status;
	/**
	 * getter
	 * @return complaint status
	 */
	public ComplaintStatus getStatus ()
	{
		return this.status;
	}
	/**
	 * setter
	 * @param status
	 */
	public void setStatus ( ComplaintStatus status )
	{
		this.status = status;
	}

	private DateTime openDate;
	/**
	 * getter
	 * @return open date
	 */
	public DateTime getOpenDate ()
	{
		return this.openDate;
	}
	/**
	 * setter
	 * @param openDate
	 */
	public void setOpenDate ( DateTime openDate )
	{
		this.openDate = openDate;
	}

	private String resolveText;
	/**
	 * getter
	 * @return resolve text
	 */
	public String getResolveText ()
	{
		return this.resolveText;
	}
	/**
	 * setter
	 * @param resolveText
	 */
	public void setResolveText ( String resolveText )
	{
		this.resolveText = resolveText;
	}

	private Customer customerOfComplaint;
	/**
	 * getter
	 * @return instance of customer class that has the complaint
	 */
	public Customer getCustomerOfComplaint ()
	{
		return this.customerOfComplaint;
	}
	/**
	 * setter
	 * @param customerOfComplaint
	 */
	public void setCustomerOfComplaint ( Customer customerOfComplaint )
	{
		this.customerOfComplaint = customerOfComplaint;
	}

	private ComplaintResolve complaintResolve;
	/**
	 * getter
	 * @return complaint resolve 
	 */
	public ComplaintResolve getComplaintResolve ()
	{
		return this.complaintResolve;
	}
	/**
	 * setter
	 * @param complaintResolve
	 */
	public void setComplaintResolve ( ComplaintResolve complaintResolve )
	{
		this.complaintResolve = complaintResolve;
	}

	private Integer amountRefound;
	/**
	 * getter
	 * @return refund amount
	 */
	public Integer getAmountRefound ()
	{
		return this.amountRefound;
	}
	/**
	 * setter
	 * @param amountRefound
	 */
	public void setAmountRefound ( Integer amountRefound )
	{
		this.amountRefound = amountRefound;
	}

	private boolean isHistory;
	/**
	 * getter
	 * @return is history status
	 */
	public boolean isHistory ()
	{
		return this.isHistory;
	}
	/**
	 * setter
	 * @param isPassedToHistory
	 */
	public void setHistory ( boolean isPassedToHistory )
	{
		this.isHistory = isPassedToHistory;
	}

	private SiteEnum siteEnum;
	/**
	 * getter
	 * @return site enum
	 */
	public SiteEnum getSiteEnum()
	{
		return this.siteEnum;
	}
	/**
	 * setter
	 * @param siteEnum
	 */
	public void setSiteEnum(SiteEnum siteEnum)
	{
		this.siteEnum = siteEnum;
	}

}
